﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vs="http://schemas.microsoft.com/Visual-Studio-Intellisense"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
vs:helpNamespace="http://schemas.microsoft.com/.NetConfiguration/v2.0">

  <xs:element name="xoohoo">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="connectionStrings" type="connectionStrings" minOccurs="0" maxOccurs="1"/>
        <xs:element name="dataProviders" type="dataProviders" minOccurs="0" maxOccurs="1"/>
        <xs:element name="modules" type="modules" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="dataProviders">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="add">
        <xs:complexType>
          <xs:attribute name="name" type="xs:string" use="required" />
          <xs:attribute name="type" type="xs:string" use="required" />
          <xs:attribute name="category" type="xs:string" use="required" />
          <xs:attribute name="connectionString" type="xs:string" use="optional" />
          <xs:attribute name="enabled" type="smallBooleanType" use="optional" />
        </xs:complexType>
      </xs:element>
    </xs:choice>
    <xs:attribute name="defaultConnectionString" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="modules">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="add">
        <xs:complexType>
          <xs:attribute name="name" type="xs:string" use="required" />
          <xs:attribute name="type" type="xs:string" use="required" />
          <xs:attribute name="dataProvider" type="xs:string" use="optional" />
          <xs:attribute name="skin" type="xs:string" use="optional" />
        </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="connectionStrings" vs:help="configuration/connectionStrings">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="add" vs:help="configuration/connectionStrings/add">
        <xs:complexType>
          <xs:attribute name="connectionString" type="xs:string" use="required" />
          <xs:attribute name="name" type="xs:string" use="required" />
          <xs:attribute name="providerName" type="xs:string" use="optional" />
          <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
          <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
          <xs:attribute name="lockElements" type="xs:string" use="optional" />
          <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
          <xs:attribute name="lockItem" type="smallBooleanType" use="optional" />
          <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="remove" vs:help="configuration/connectionStrings/remove">
        <xs:complexType>
          <xs:attribute name="name" type="xs:string" use="required" />
          <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="clear" vs:help="configuration/connectionStrings/clear">
        <xs:complexType>
          <!--tag is empty-->
          <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
        </xs:complexType>
      </xs:element>
    </xs:choice>
    <xs:attribute name="lockAttributes" type="xs:string" use="optional" />
    <xs:attribute name="lockAllAttributesExcept" type="xs:string" use="optional" />
    <xs:attribute name="lockElements" type="xs:string" use="optional" />
    <xs:attribute name="lockAllElementsExcept" type="xs:string" use="optional" />
    <xs:attribute name="lockItem" type="smallBooleanType" use="optional" />
    <xs:attribute name="configSource" type="xs:string" use="optional" />
    <xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/>
  </xs:complexType>
  <xs:simpleType name="smallBooleanType">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="false" />
      <xs:enumeration value="true" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="booleanType">
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="false" />
      <xs:enumeration value="true" />
      <xs:enumeration value="True" />
      <xs:enumeration value="False" />
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
